Skip to content

feat: 기상 루틴을 잠금 해제가 아니라 일어나 걸은 걸음으로 판정한다 - #314

Merged
selee1012 merged 1 commit into
feat/remove-place-avoidfrom
feat/wake-by-steps
Oct 15, 2026
Merged

selee1012 merged 1 commit into
feat/remove-place-avoidfrom
feat/wake-by-steps

Conversation

@selee1012

@selee1012 selee1012 commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

무엇을

기상 루틴(1501~1507)의 판정을 첫 잠금 해제 → 일어나 걸은 걸음으로 바꾼다.

  • 성공: 00:00 ~ 목표 시각 + 30분 사이 Health Connect 걸음이 10걸음 이상
  • 실패: 창이 닫힐 때까지 미달 → WOKE_UP_LATE (설명: 「07:30까지 걸음 3걸음 / 목표 10걸음」)
  • 30분·10걸음은 실기기 테스트로 찾을 값이라 설정으로 뺐다: app.verification.wake-grace-minutes, app.verification.wake-min-steps

왜

잠금 해제는 누워서 알람만 꺼도 잡히고, 일어나서 휴대폰을 안 보면 실패한다.

판정 세부

  • 구간(startTime~endTime)이 있는 STEPS 기록만 쓴다. 창에 걸친 기록은 겹친 비율만큼만 센다.
  • 출처 게이트(손입력·신뢰 밖 출처 제외)와 폰·워치 겹침 제거는 움직임(HEALTH) 판정과 같은 코드를 공유한다.
  • 판정 입력 신호는 HEALTH 하나(MethodSignalTypes) — 그래서 건강정보 동의가 필요해진다.

앱 영향 없음

Android 는 챌린지의 verification.requiredPermissions 로 Health Connect 수집 지표를 정한다(RestoreVerificationTargetsUseCase).
V13__wake_by_steps.sql 이 템플릿과 이미 만든 자동 인증 방의 스냅샷 권한을 android.permission.health.READ_STEPS 로 바꾸므로 앱 수정 없이 걸음 기록이 올라온다.
사용자는 Health Connect 걸음 권한을 허용해야 한다.

테스트

  • EvaluatorAccuracyTest: 창 안 걸음 성공 / 잠금 해제만으론 불인정 / 유예 뒤 걸음은 늦잠 / 마감 걸친 기록 비율 계산 / 손입력 제외 / 창 열림 대기
  • 계약 IT·Android 와이어 IT 를 걸음 신호로 교체
  • 전체 ./gradlew test 1,456건 통과

🤖 Generated with Claude Code

첫 잠금 해제는 누워서 알람만 꺼도 잡히고 일어나서 휴대폰을 안 보면
실패한다. 00:00 ~ 목표 시각 + 30분 안에 Health Connect 걸음이 10걸음
이상이면 기상으로 본다. 유예·걸음 수는 실기기 테스트로 찾을 값이라
설정(app.verification.wake-grace-minutes·wake-min-steps)으로 뺐다.

앱은 requiredPermissions 로 수집 지표를 정하므로 템플릿과 이미 만든
방의 권한을 READ_STEPS 로 바꾼다(V13) — 앱 수정 없이 걸음이 온다.
걸음 출처 게이트·겹침 제거는 움직임 판정과 같은 코드를 쓴다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@selee1012
selee1012 added this pull request to stack #315 October 15, 2026 01:21
@github-actions

Copy link
Copy Markdown

Test Coverage

Overall Project 82.63% -0.09% 🍏
Files changed 78.23% ❌

File Coverage
VerificationProperties.java 100% 🍏
WakeConfig.java 100% 🍏
SignalConsentGate.java 98.97% 🍏
WakeEvaluator.java 95.6% -3.14% 🍏
AnomalyEventRecorder.java 94.83% 🍏
SignalExclusionRecorder.java 94.38% 🍏
MethodSignalTypes.java 93.06% 🍏
VerificationReadService.java 84.23% -2.08% ❌
HealthEvaluator.java 83.65% 🍏
VerificationConfigFactory.java 74.96% -1.61% ❌
VerificationGuideFacts.java 69.14% -2.93% ❌
FailureEvidence.java 57.66% -10.39% ❌

@selee1012
selee1012 merged commit 08d0224 into dev Oct 15, 2026
3 checks passed
@selee1012
selee1012 deleted the feat/wake-by-steps branch October 15, 2026 01:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant